//////////////////////////////////////////////////////////////////////////

#ifndef _CONNECTIONIMPL_H_
#include "connectionimpl.h"
#endif

//////////////////////////////////////////////////////////////////////////

#ifndef _BOOSTCONNECTIONIMPL_H_
#include "boostconnectionimpl.h"
#endif

//////////////////////////////////////////////////////////////////////////

// UDP recv buffer
Packet ConnectionImpl::m_RecvPacketUDP(NULL, 0);
const size_t ConnectionImpl::m_Port = 27027;
const char* ConnectionImpl::m_PortStr = "27027";

//////////////////////////////////////////////////////////////////////////

ConnectionImpl::ConnectionImpl()
: m_RecvPacketTCP(NULL, 0)
{
}


//////////////////////////////////////////////////////////////////////////


ConnectionImpl::~ConnectionImpl()
{
}


//////////////////////////////////////////////////////////////////////////


ConnectionImpl* ConnectionImpl::GetBoostConnectionImpl()
{
    return new BoostConnectionImpl;
}


//////////////////////////////////////////////////////////////////////////


const Packet& ConnectionImpl::GetRecvPacketTCP() const
{
    return m_RecvPacketTCP;
}


//////////////////////////////////////////////////////////////////////////


const Packet& ConnectionImpl::GetRecvPacketUDP() const
{
    return m_RecvPacketUDP;
}


//////////////////////////////////////////////////////////////////////////


void ConnectionImpl::HandleAccept()
{
    NotifyObservers(Observer::NETWORK_ACCEPTED_NEW_CONNECTION);
}


//////////////////////////////////////////////////////////////////////////


void ConnectionImpl::HandleSendTCP( size_t _bytesTransferred )
{
    NotifyObservers(Observer::NETWORK_SEND_COMPLETE);
}


//////////////////////////////////////////////////////////////////////////


void ConnectionImpl::HandleSendUDP( size_t _bytesTransferred )
{
    NotifyObservers(Observer::NETWORK_SEND_COMPLETE);
}


//////////////////////////////////////////////////////////////////////////


void ConnectionImpl::HandleRecvTCP( const Packet& _packet )
{
    m_RecvPacketTCP = _packet
    NotifyObservers(Observer::NETWORK_RECEIVE_COMPLETE);
}


//////////////////////////////////////////////////////////////////////////


void ConnectionImpl::HandleRecvUDP( const Packet& _packet )
{
    m_RecvPacketUDP = _packet;
    NotifyObservers(Observer::NETWORK_RECEIVE_COMPLETE);
}


//////////////////////////////////////////////////////////////////////////
